The subject matter of this application relates to statistical multiplexing systems that encode and multiplex a plurality of source signals for propagation along a common transmission medium.
Digital services such as high definition television and pay-per-view video as well as other digital services such as electronic program guides, weather and stock information, Internet service, etc. have become ubiquitous. Typically, many services, or channels of such services in the case of television programming, are provided to a single customer. However, due to bandwidth limitations of the channel(s) providing such services, to provide satisfactory quality for each service it is often necessary to adjust a bit rate of each of the various individual services (e.g. digital video programs) that are encoded and multiplexed for transmission in a single compressed bitstream to a customer, while simultaneously meeting the constraint on the total bandwidth allotted to the multiplexed channel.
Accordingly, various types of statistical multiplexing systems have been developed that evaluate statistical information related to the content encoded from each source of data, and use that statistical information to temporally adjust the bit allocation among the respective encoders that encode each of those multiplexed sources. For example, many different channels of CATV content may be multiplexed over a single transmission medium, such as a fiber optic line or a satellite communications channel, which has a fixed bandwidth to transmit all the multiplexed channels. However, some channels may require more bandwidth than other channels due to live action, fast motion, frequent scene changes, etc. A statistical multiplexing system will therefore allocate more bits to those channels that need relatively more bits to provide a quality image, and allocate less bits to those channels that require relatively fewer bits to provide a quality image.
FIG. 1, for example, shows a prior art statistical multiplexing system 10 that receives a plurality of source signals 12, each encoded by a selective encoder 14 and multiplexed together by a multiplexer 16 for propagation along a common transmission medium 18. While encoding a respective source signal, each encoder 14 calculates a complexity value for a frame and sends it to a rate control processor 20. The complexity values for video measure activity per macroblock per second, and are generally proportional to the number of bits needed to encode a frame so as to achieve some level of image quality, and may be calculated using any number of measured statistics relating to a frame of encoded video, including spatial and temporal variation in pixel intensity values, frame resolution, I- P- or B- frame type, frame rate, etc. The rate control processor 20, in turn, allocates bits of the fixed bandwidth of the multiplexer 18 among each of the encoders 14 using the received complexity values.
Modern digital video services frequently entail the simultaneous delivery of content having an extreme disparity in service quality. For example, a CATV provider may include, in a group of source signals being statistically multiplexed together (hereinafter referred to as a “statistical multiplex group”), high definition content, standard definition content, 2-D content, 3-D content, different scan types (progressive, interlaced), etc. Given that each of these types of content will also present temporally-varying demands on bit allocation due to the substance of what is broadcast, e.g. live sports, documentary, etc., these statistical multiplex groups often push or exceed the performance limits prior art systems such as that shown in FIG. 1. What is needed, therefore, are improved systems and methods of statistically multiplexing a plurality of source digital services.